home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / sticpsrc.lzh / DOC / SETTINGS.ARC / SETTINGS.TXT
Encoding:
Text File  |  1990-06-03  |  19.2 KB  |  381 lines

  1.  
  2. _✓1.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓B_✓u_✓f_✓s_✓i_✓z_✓e, _✓P_✓a_✓c_✓l_✓e_✓n, _✓M_✓a_✓x_✓f_✓r_✓a_✓m_✓e, _✓M_✓T_✓U, _✓M_✓S_✓S _✓a_✓n_✓d _✓W_✓i_✓n_✓d_✓o_✓w
  3.  
  4. Many NET users are confused by these parameters and  do  not
  5. know  how  to  set  them  properly.  This section will first
  6. review these parameters  and  then  discuss  how  to  choose
  7. values  for  them.  Special  emphasis  is  given to avoiding
  8. interoperability problems that may appear when communicating
  9. with non-NET implementations of AX.25.
  10.  
  11. _✓1._✓1.  _✓H_✓a_✓r_✓d_✓w_✓a_✓r_✓e _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r_✓s
  12.  
  13. _✓1._✓1._✓1.  _✓B_✓u_✓f_✓s_✓i_✓z_✓e
  14.  
  15. This parameter is required by most of  NET's  built-in  HDLC
  16. drivers  (e.g.,  those for the DRSI PCPA and the Paccomm PC-
  17. 100). It specifies the size of the buffer  to  be  allocated
  18. for  each  receiver port. HDLC frames larger than this value
  19. cannot be received.
  20.  
  21. There is no default b✓b✓b✓bu✓u✓u✓uf✓f✓f✓fs✓s✓s✓si✓i✓i✓iz✓z✓z✓ze✓e✓e✓e; it must  be  specified  in  the
  22. a✓a✓a✓at✓t✓t✓tt✓t✓t✓ta✓a✓a✓ac✓c✓c✓ch✓h✓h✓h command for the interface.
  23.  
  24. _✓1._✓2.  _✓A_✓X_✓2_✓5 _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r_✓s
  25.  
  26. _✓1._✓2._✓1.  _✓P_✓a_✓c_✓l_✓e_✓n
  27.  
  28. Paclen limits the size of the data  field  in  an  AX.25  I-
  29. frame. This value does _✓n_✓o_✓t include the AX.25 protocol header
  30. (source, destination and digipeater addresses).
  31.  
  32. Since unconnected-mode (datagram) AX.25 uses UI frames, this
  33. parameter has no effect in unconnected mode.
  34.  
  35. The default value of p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n in NET is 256 bytes.
  36.  
  37. _✓1._✓2._✓2.  _✓M_✓a_✓x_✓f_✓r_✓a_✓m_✓e
  38.  
  39. This parameter controls the number of I-frames that NET  may
  40. send on an AX.25 connection before it must stop and wait for
  41. an acknowledgement.  Since the  AX.25/LAPB  sequence  number
  42. field is 3 bits wide, this number cannot be larger than 7.
  43.  
  44. Since unconnected-mode (datagram) AX.25 uses UI frames  that
  45. do  not have sequence numbers, this parameter does _✓n_✓o_✓t apply
  46. to unconnected mode.
  47.  
  48. The default value of m✓m✓m✓ma✓a✓a✓ax✓x✓x✓xf✓f✓f✓fr✓r✓r✓ra✓a✓a✓am✓m✓m✓me✓e✓e✓e in NET is 1 frame.
  49.  
  50. _✓1._✓3.  _✓I_✓P _✓a_✓n_✓d _✓T_✓C_✓P _✓P_✓a_✓r_✓a_✓m_✓e_✓t_✓e_✓r_✓s
  51.  
  52.                         June 3, 1990
  53.  
  54.                            - 2 -
  55.  
  56. _✓1._✓3._✓1.  _✓M_✓T_✓U
  57.  
  58. The MTU (Maximum Transmission Unit) is an interface  parame-
  59. ter  that limits the size of the largest IP datagram that it
  60. may handle.  IP datagrams routed to an  interface  that  are
  61. larger  than  its  MTU are each split into two or more _✓f_✓r_✓a_✓g_✓-
  62. _✓m_✓e_✓n_✓t_✓s.  Each fragment has its own IP header and  is  handled
  63. by  the  network  as  if it were a distinct IP datagram, but
  64. when it arrives at the destination it  is  held  by  the  IP
  65. layer until all of the other fragments belonging to the ori-
  66. ginal datagram have arrived. Then they are reassembled  back
  67. into the complete, original IP datagram. The minimum accept-
  68. able interface MTU is 28 bytes: 20 bytes for the  IP  (frag-
  69. ment) header, plus 8 bytes of data.
  70.  
  71. There is no default MTU in NET; it must be explicitly speci-
  72. fied for each interface as part of the a✓a✓a✓at✓t✓t✓tt✓t✓t✓ta✓a✓a✓ac✓c✓c✓ch✓h✓h✓h command.
  73.  
  74. _✓1._✓3._✓2.  _✓M_✓S_✓S
  75.  
  76. MSS (Maximum Segment Size) is  a  TCP-level  parameter  that
  77. limits the amount of data that the _✓r_✓e_✓m_✓o_✓t_✓e TCP will send in a
  78. single TCP packet. MSS values are exchanged in the SYN (con-
  79. nection  request) packets that open a TCP connection. In the
  80. NET implementation of TCP, the MSS actually used by  TCP  is
  81. further reduced in order to avoid fragmentation at the local
  82. IP interface. That is, the local TCP asks IP for the MTU  of
  83. the interface that will be used to reach the destination. It
  84. then subtracts 40 from the MTU value to allow for the  over-
  85. head  of  the TCP and IP headers. If the result is less than
  86. the MSS received from the remote TCP, it is used instead.
  87.  
  88. The default value of M✓M✓M✓MS✓S✓S✓SS✓S✓S✓S in NET is 512 bytes.
  89.  
  90. _✓1._✓3._✓3.  _✓W_✓i_✓n_✓d_✓o_✓w
  91.  
  92. This is a TCP-level parameter that controls  how  much  data
  93. the  local  TCP  will allow the remote TCP to send before it
  94. must stop and wait for an acknowledgement. The actual window
  95. value  used  by TCP when deciding how much more data to send
  96. is referred to as the _✓e_✓f_✓f_✓e_✓c_✓t_✓i_✓v_✓e _✓w_✓i_✓n_✓d_✓o_✓w.  This is the smaller
  97. of two values: the window advertised by the remote TCP minus
  98. the unacknowledged data in flight, and the  _✓c_✓o_✓n_✓g_✓e_✓s_✓t_✓i_✓o_✓n  _✓w_✓i_✓n_✓-
  99. _✓d_✓o_✓w,  an automatically computed time-varying estimate of how
  100. much data the network can handle.
  101.  
  102. The default value of W✓W✓W✓Wi✓i✓i✓in✓n✓n✓nd✓d✓d✓do✓o✓o✓ow✓w✓w✓w in NET is 2048 bytes.
  103.  
  104. _✓1._✓4.  _✓D_✓i_✓s_✓c_✓u_✓s_✓s_✓i_✓o_✓n
  105.  
  106.                         June 3, 1990
  107.  
  108.                            - 3 -
  109.  
  110. _✓1._✓4._✓1.  _✓I_✓P _✓F_✓r_✓a_✓g_✓m_✓e_✓n_✓t_✓a_✓t_✓i_✓o_✓n _✓v_✓s _✓A_✓X._✓2_✓5 _✓S_✓e_✓g_✓m_✓e_✓n_✓t_✓a_✓t_✓i_✓o_✓n
  111.  
  112. IP-level fragmentation often makes it possible to  intercon-
  113. nect  two  dissimilar networks, but it is best avoided when-
  114. ever possible.  One reason is that when a single IP fragment
  115. is  lost, all other fragments belonging to the same datagram
  116. are effectively also lost and the entire  datagram  must  be
  117. retransmitted  by  the source.  Even without loss, fragments
  118. require the allocation of temporary  buffer  memory  at  the
  119. destination, and it is never easy to decide how long to wait
  120. for missing fragments before giving up and discarding  those
  121. that have already arrived.  A reassembly timer controls this
  122. process.  In NET it is (re)initialized with  the  i✓i✓i✓ip✓p✓p✓p  r✓r✓r✓rt✓t✓t✓ti✓i✓i✓im✓m✓m✓me✓e✓e✓er✓r✓r✓r
  123. parameter  (default 30 seconds) whenever progress is made in
  124. reassembling a datagram (i.e., a new fragment is  received).
  125. It is not necessary that all of the fragments belonging to a
  126. datagram arrive within a single timeout interval, only  that
  127. the interval between fragments be less than the timeout.
  128.  
  129. Most subnetworks that carry IP have MTUs  of  576  bytes  or
  130. more,   so  interconnecting  them  with  subnetworks  having
  131. smaller values can result in considerable fragmentation. For
  132. this  reason,  IP implementors working with links or subnets
  133. having unusually small packet size limits are encouraged  to
  134. use _✓t_✓r_✓a_✓n_✓s_✓p_✓a_✓r_✓e_✓n_✓t _✓f_✓r_✓a_✓g_✓m_✓e_✓n_✓t_✓a_✓t_✓i_✓o_✓n, that is, to devise schemes to
  135. break up large IP datagrams into a sequence of link or  sub-
  136. net frames that are immediately reassembled on the other end
  137. of the link or subnet into the original, whole  IP  datagram
  138. without  the use of IP-level fragmentation. Such a scheme is
  139. provided in AX.25 Version 2.1.  It can break a large  IP  or
  140. NET/ROM  datagram  into  a series of p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n-sized AX.25 seg-
  141. ments (not to be confused with TCP segments), one per  AX.25
  142. I-frame,  for transmission and reassemble them into a single
  143. datagram at the other end of the link before handing  it  up
  144. to  the  IP or NET/ROM module.  Unfortunately, the segmenta-
  145. tion procedure is a new feature in  AX.25  and  is  not  yet
  146. widely  implemented;  in  fact, NET is so far the only known
  147. implementation. This creates some interoperability  problems
  148. between  NET  and  non-NET  nodes,  in  particular, standard
  149. NET/ROM nodes being used to carry IP datagrams. This problem
  150. is discussed further in the section on setting the MTU.
  151.  
  152. _✓1._✓4._✓2.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓p_✓a_✓c_✓l_✓e_✓n _✓a_✓n_✓d _✓b_✓u_✓f_✓s_✓i_✓z_✓e
  153.  
  154. The more data you put into an AX.25 I frame, the smaller the
  155. AX.25  headers  are  in relation to the total frame size. In
  156. other words, by increasing p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n, you lower the AX.25  pro-
  157. tocol overhead. Also, large data packets reduce the overhead
  158. of keying up a transmitter, and this  can  be  an  important
  159. factor  with  higher  speed modems. On the other hand, large
  160. frames make bigger targets for noise and interference.  Each
  161. link  has an optimum value of p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n that is best discovered
  162. by experiment.
  163.  
  164.                         June 3, 1990
  165.  
  166.                            - 4 -
  167.  
  168. Another thing to remember when setting p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n  is  that  the
  169. AX.25  version  2.0  specification  limits  it to 256 bytes.
  170. Although NET can handle much larger values, some other AX.25
  171. implementations  (including digipeaters) cannot and this may
  172. cause interoperability problems. Even NET may  have  trouble
  173. with  certain  KISS  TNCs because of fixed-size buffers. The
  174. original KISS TNC code for the  TNC-2  by  K3MC  can  handle
  175. frames  limited in size only by the RAM in the TNC, but some
  176. other KISS TNCs cannot.
  177.  
  178. NET's built-in HDLC drivers (SCC, PC-100, DRSI,  etc)  allo-
  179. cate receive buffers according to the maximum expected frame
  180. size, so it is important that these  devices  be  configured
  181. with the correct b✓b✓b✓bu✓u✓u✓uf✓f✓f✓fs✓s✓s✓si✓i✓i✓iz✓z✓z✓ze✓e✓e✓e. To do this, you must know the size
  182. of the largest possible frame  that  can  be  received.  The
  183. p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n parameter controls only the size of the data field in
  184. an I-frame and not the total size of the frame as it appears
  185. on  the  air.  The AX.25 spec allows up to 8 digipeaters, so
  186. the largest possible frame is (p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n + 72)  bytes.  So  you
  187. should make b✓b✓b✓bu✓u✓u✓uf✓f✓f✓fs✓s✓s✓si✓i✓i✓iz✓z✓z✓ze✓e✓e✓e at least this large.
  188.  
  189. Another important consideration is that the more recent ver-
  190. sions  of  NOS  improve  interrupt response by maintaining a
  191. special pool of buffers for use  by  the  receive  routines.
  192. These  buffers are currently fixed in size to 2048 bytes and
  193. this can be changed only by editing config.h and recompiling
  194. NOS.   This  limits  b✓b✓b✓bu✓u✓u✓uf✓f✓f✓fs✓s✓s✓si✓i✓i✓iz✓z✓z✓ze✓e✓e✓e;  in  fact, attempting to set a
  195. larger value may cause the driver not to work at  all.  This
  196. situation  can be detected by running the m✓m✓m✓me✓e✓e✓em✓m✓m✓mo✓o✓o✓or✓r✓r✓ry✓y✓y✓y s✓s✓s✓st✓t✓t✓ta✓a✓a✓at✓t✓t✓tu✓u✓u✓us✓s✓s✓s com-
  197. mand and looking for a non-zero count  of  I✓I✓I✓Ib✓b✓b✓bu✓u✓u✓uf✓f✓f✓ff✓f✓f✓fa✓a✓a✓ai✓i✓i✓il✓l✓l✓l  events,
  198. although  these  events  can  also occur occasionally during
  199. normal operation.
  200.  
  201. One of the drawbacks of AX.25 that there is no way  for  one
  202. station  to tell another how large a packet it is willing to
  203. accept.  This requires the stations  sharing  a  channel  to
  204. agree  beforehand  on  a  maximum  packet size.  TCP is dif-
  205. ferent, as we shall see.
  206.  
  207. _✓1._✓4._✓3.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓M_✓a_✓x_✓f_✓r_✓a_✓m_✓e
  208.  
  209. For best performance on a half-duplex  radio  channel,  m✓m✓m✓ma✓a✓a✓ax✓x✓x✓x-✓-✓-✓-
  210. f✓f✓f✓fr✓r✓r✓ra✓a✓a✓am✓m✓m✓me✓e✓e✓e  should  always be set to 1. The reasons are explained
  211. in the paper _✓L_✓i_✓n_✓k _✓L_✓e_✓v_✓e_✓l _✓P_✓r_✓o_✓t_✓o_✓c_✓o_✓l_✓s _✓R_✓e_✓v_✓i_✓s_✓i_✓t_✓e_✓d by  Brian  Lloyd
  212. and Phil Karn, which appeared in the proceedings of the ARRL
  213. 5th Computer Networking Conference in 1986.
  214.  
  215. _✓1._✓4._✓4.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓M_✓T_✓U
  216.  
  217. TCP/IP header overhead considerations similar  to  those  of
  218. the  AX.25  layer when setting p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n apply when choosing an
  219. MTU.  However, certain subnetwork  types  supported  by  NET
  220. have  well-established MTUs, and these should always be used
  221. unless you know what you're doing: 1500 bytes for  Ethernet,
  222.  
  223.                         June 3, 1990
  224.  
  225.                            - 5 -
  226.  
  227. and 253 bytes for ARCNET. Other subnet types, including SLIP
  228. and AX.25, are not as well standardized. SLIP has  no  offi-
  229. cial  MTU, but the most common implementation (for BSD UNIX)
  230. uses an MTU of 1006 bytes.  Although NET has no  hard  wired
  231. limit on the size of a received SLIP frame, this is not true
  232. for other systems.  Interoperability problems may  therefore
  233. result if larger MTUs are used in NET.
  234.  
  235. Choosing an MTU for an AX.25 interface is more complex. When
  236. the  interface  operates  in  datagram  (UI-frame) mode, the
  237. p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n parameter does not apply. The MTU effectively becomes
  238. the  p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n  of  the  link.   However, as mentioned earlier,
  239. large packets sent on AX.25  _✓c_✓o_✓n_✓n_✓e_✓c_✓t_✓i_✓o_✓n_✓s  are  automatically
  240. segmented into I-frames no larger than p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n bytes.  Unfor-
  241. tunately, as also mentioned earlier, NET is so far the  only
  242. known  implementation  of  the  new  AX.25 segmentation pro-
  243. cedure. This is fine as long as all  of  the  NET/ROM  nodes
  244. along  a path are running NET, but since the main reason NET
  245. supports NET/ROM is to allow use of  existing  NET/ROM  net-
  246. works, this is unlikely.
  247.  
  248. So it is usually important to avoid AX.25 segmentation  when
  249. running IP over NET/ROM.  The way to do this is to make sure
  250. that packets larger than p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n are never handed  to  AX.25.
  251. A  NET/ROM  transport  header  is 5 bytes long and a NET/ROM
  252. network header takes 15 bytes, so 20 bytes must be added  to
  253. the  size  of  an  IP datagram when figuring the size of the
  254. AX.25 I-frame data field. If p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n is 256, this leaves  236
  255. bytes  for  the  IP datagram. This is the default MTU of the
  256. n✓n✓n✓ne✓e✓e✓et✓t✓t✓tr✓r✓r✓ro✓o✓o✓om✓m✓m✓m pseudo-interface, so as long as p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n  is  at  least
  257. 256  bytes,  AX.25 segmentation can't happen. But if smaller
  258. values of p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n are used,  the  n✓n✓n✓ne✓e✓e✓et✓t✓t✓tr✓r✓r✓ro✓o✓o✓om✓m✓m✓m  MTU  must  also  be
  259. reduced with the i✓i✓i✓if✓f✓f✓fc✓c✓c✓co✓o✓o✓on✓n✓n✓nf✓f✓f✓fi✓i✓i✓ig✓g✓g✓g command.
  260.  
  261. On the other hand, if you're running IP directly on  top  of
  262. AX.25, chances are all of the nodes are running NET and sup-
  263. port AX.25 segmentation.  In this case there  is  no  reason
  264. not  to  use  a larger MTU and let AX.25 segmentation do its
  265. thing. If you choose an MTU on the order of 1000-1500 bytes,
  266. you  can  largely  avoid  IP-level  fragmentation and reduce
  267. TCP/IP-level header overhead on file transfers to a very low
  268. level.  And you are still free to pick whatever p✓p✓p✓pa✓a✓a✓ac✓c✓c✓cl✓l✓l✓le✓e✓e✓en✓n✓n✓n value
  269. is appropriate for the link.
  270.  
  271. _✓1._✓4._✓5.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓M_✓S_✓S
  272.  
  273. The setting of this TCP-level  parameter  is  somewhat  less
  274. critical than the IP and AX.25 level parameters already dis-
  275. cussed, mainly because it is automatically lowered according
  276. to  the  MTU  of  the  local  interface when a connection is
  277. created. Although this is,  strictly  speaking,  a  protocol
  278. layering   violation  (TCP  is  not  supposed  to  have  any
  279. knowledge of the workings of lower  layers)  this  technique
  280. does  work well in practice.  However, it can be fooled; for
  281.  
  282.                         June 3, 1990
  283.  
  284.                            - 6 -
  285.  
  286. example, if a routing change occurs after the connection has
  287. been  opened  and  the new local interface has a smaller MTU
  288. than the previous one, IP fragmentation  may  occur  in  the
  289. local system.
  290.  
  291. The only drawback to setting a large MSS is  that  it  might
  292. cause avoidable fragmentation at some other point within the
  293. network path if it includes a "bottleneck"  subnet  with  an
  294. MTU  smaller  than  that  of  the  local interface.  (Unfor-
  295. tunately, there is presently no way to know when this is the
  296. case.  There is ongoing work within the Internet Engineering
  297. Task Force on a "MTU Discovery" procedure to  determine  the
  298. largest  datagram that may be sent over a given path without
  299. fragmentation, but it is not yet complete.) Also, since  the
  300. MSS  you  specify  is sent to the remote system, and not all
  301. other TCPs do the MSS-lowering  procedure  yet,  this  might
  302. cause  the  remote  system to generate IP fragments unneces-
  303. sarily.
  304.  
  305. On the other hand, a too-small MSS can result in a consider-
  306. able  performance  loss, especially when operating over fast
  307. LANs and networks that can handle  larger  packets.  So  the
  308. best  value for MSS is probably 40 less than the largest MTU
  309. on your system, with the 40-byte margin allowing for the TCP
  310. and  IP  headers.  For example, if you have a SLIP interface
  311. with a 1006 byte MTU and an Ethernet interface with  a  1500
  312. byte  MTU, set MSS to 1460 bytes. This allows you to receive
  313. maximum-sized Ethernet packets, assuming the  path  to  your
  314. system  does  not  have  any bottleneck subnets with smaller
  315. MTUs.
  316.  
  317. _✓1._✓4._✓6.  _✓S_✓e_✓t_✓t_✓i_✓n_✓g _✓W_✓i_✓n_✓d_✓o_✓w
  318.  
  319. A sliding window protocol like TCP cannot transfer more than
  320. one  window's worth of data per round trip time interval. So
  321. this TCP-level parameter controls the ability of the  remote
  322. TCP to keep a long "pipe" full. That is, when operating over
  323. a path with many hops, offering a large TCP window will help
  324. keep  all those hops busy when you're receiving data. On the
  325. other hand, offering too large a window can congest the net-
  326. work  if  it  cannot  buffer all that data. Fortunately, new
  327. algorithms for dynamic controlling the  effective  TCP  flow
  328. control  window  have been developed over the past few years
  329. and are now widely deployed. NET includes them, and you  can
  330. watch  them  in  action  with the t✓t✓t✓tc✓c✓c✓cp✓p✓p✓p s✓s✓s✓st✓t✓t✓ta✓a✓a✓at✓t✓t✓tu✓u✓u✓us✓s✓s✓s <✓<✓<✓<t✓t✓t✓tc✓c✓c✓cb✓b✓b✓b>✓>✓>✓> or s✓s✓s✓so✓o✓o✓oc✓c✓c✓ck✓k✓k✓ke✓e✓e✓et✓t✓t✓t
  331. <✓<✓<✓<s✓s✓s✓so✓o✓o✓oc✓c✓c✓ck✓k✓k✓kn✓n✓n✓no✓o✓o✓o>✓>✓>✓> commands.  Look at the  c✓c✓c✓cw✓w✓w✓wi✓i✓i✓in✓n✓n✓nd✓d✓d✓d  (congestion  window)
  332. value.
  333.  
  334. In most cases it is safe to set the TCP window  to  a  small
  335. integer  multiple  of the MSS, e.g., 4x, or larger if neces-
  336. sary to fully utilize a high bandwidth*delay  product  path.
  337. One  thing  to  keep in mind, however, is that advertising a
  338. certain TCP window value declares that the system  has  that
  339. much  buffer space available for incoming data. NET does not
  340.  
  341.                         June 3, 1990
  342.  
  343.                            - 7 -
  344.  
  345. actually preallocate this space; it keeps  it  in  a  common
  346. pool  and  may  well "overbook" it, exploiting the fact that
  347. many TCP connections are idle for long periods and  gambling
  348. that  most  applications  will  read  incoming  data from an
  349. active connection as soon as  it  arrives,  thereby  quickly
  350. freeing  the  buffer memory.  However, it is possible to run
  351. NET out of memory if excessive TCP window sizes  are  adver-
  352. tised  and  either the applications go to sleep indefinitely
  353. (e.g., suspended  TELNET  sessions)  or  a  lot  of  out-of-
  354. sequence  data  arrives.   It  is wise to keep an eye on the
  355. amount of available memory and to decrease  the  TCP  window
  356. size (or limit the number of simultaneous connections) if it
  357. gets too low.
  358.  
  359. Depending on the channel access method and link level proto-
  360. col,  the  use  of a window setting that exceeds the MSS may
  361. cause an increase in channel collisions. In particular, col-
  362. lisions  between data packets and returning acknowledgements
  363. during a bulk file transfer may become common. Although this
  364. is,  strictly  speaking,  not TCP's fault, it is possible to
  365. work around the problem at the TCP level by  decreasing  the
  366. window  so that the protocol operates in stop-and-wait mode.
  367. This is done by making the window value equal to the MSS.
  368.  
  369. _✓1._✓5.  _✓S_✓u_✓m_✓m_✓a_✓r_✓y
  370.  
  371. In general, the default values provided by NET for  each  of
  372. these  parameters  will  work  correctly and give reasonable
  373. performance. Only in special circumstances such as operation
  374. over  a  very  poor  link or experimentation with high speed
  375. modems should it be necessary to change them.
  376.  
  377.                         June 3, 1990
  378.  
  379.  
  380.  
  381.